<% for (var i = 0; i < apis.length; i++) { api = apis[i];
%>/// <reference path="PlayFab<%- api.name %>Api.d.ts" />
<% } %>
declare module PlayFabModule {
    export interface ISettings {
        titleId: string;
        developerSecretKey: string;
        GlobalHeaderInjection?: { [key: string]: string };
        advertisingIdType: string;
        advertisingIdValue: string;
        disableAdvertising: boolean;
        AD_TYPE_IDFA: string;
        AD_TYPE_ANDROID_ID: string;
    }
    export interface IPlayFabRequestCommon { }
    export interface IPlayFabError {
        code: number;
        status: string;
        error: string;
        errorCode: number;
        errorMessage: string;
        errorDetails?: { [key: string]: string[] };
        request?: any;
        customData?: any;
    }
    export interface SuccessContainer<TResult extends IPlayFabResultCommon> extends IPlayFabError {
        data: TResult;
    }
    export interface IPlayFabResultCommon extends IPlayFabError { }

    export interface ApiCallback<TResult extends IPlayFabResultCommon> { (result: SuccessContainer<TResult>, error: IPlayFabError): void }
}

declare var PlayFab: {
    buildIdentifier: string;
    sdkVersion: string;
    GenerateErrorReport(IPlayFabError): string;
    settings: PlayFabModule.ISettings;
<% for (var i = 0; i < apis.length; i++) { api = apis[i];
%>    <%- api.name %>Api: PlayFab<%- api.name %>Module.IPlayFab<%- api.name %>;
<% } %>
};
// Continue to support older usage
<% for (var i = 0; i < apis.length; i++) { api = apis[i];
%>declare var PlayFab<%- api.name %>SDK: PlayFab<%- api.name %>Module.IPlayFab<%- api.name %>;
<% } %>
